A number of currently available desktop publishing and other computer programs allow a user to draw and manipulate graphical elements within a document. The ability to draw and manipulate graphical elements has become increasingly important because the use of organizational charts, data tables, bar charts and other graphical aids continues to increase as information purveyors attempt to communicate extensive and often detailed facts, figures and other concepts. Examples of currently available programs having graphical elements, drawing and manipulating capabilities include SuperPaint.RTM. from Silicon Beach Software, MacDraw.TM. from Claris Corporation, Canvas.TM. from the Deneba Corporation, and PageMaker.RTM. from Aldus Corporation.
A primary goal of users of programs having drawing and manipulating capabilities is to input, manipulate and present (on-screen or through an output device) graphical elements as efficiently as possible. Currently available programs generally include alignment features that allow graphical elements to be precisely aligned and spaced relative to one another. However, once the alignment command is executed, the user is free to move the graphical elements out of alignment. This presents a significant disadvantage during editing, because a user is required to continually apply alignment commands to ensure that graphical elements remain aligned and spaced as desired during editing. Thus, it would be advantageous to have a way of establishing a persistent relationship between graphical elements that keeps selected graphical elements aligned and spaced despite further editing or modification of graphical or other elements before a document is printed.
The present invention is a method of establishing spatial relationships between two graphical elements displayed on a page in response to a user's input. Each graphical element has dimensional attributes and a position on the page. The method comprises: (a) selecting a first, master, graphical element in response to user input; (b) selecting a second, slave, graphical element in response to user input; (c) establishing, in response to user input, a constraint relationship between the master and slave graphical elements that links the attributes or position of the master element to the attributes or position, respectively, of the slave element wherein the constraint relationship between the master and slave elements is maintained throughout editing of the elements by the user; and (d) automatically monitoring any user-initiated attempts to edit the attributes or position of either the master or slave elements which affect the constraint relationship therebetween; and (i) if an edit to the attributes or position of the master element affecting the constraint is attempted, then modifying the attribute or position, respectively, of both the master and the slave elements in accordance with the constraint; or (ii) if an edit to the attributes or position of the slave element affecting the constraint is attempted, then inhibiting the attempt to edit the attribute or position of the slave element.
In accordance with other aspects of the invention, the dimensional attributes for each graphical element determine the shape, size, and color of the graphical element. Further, the constraint relationship may include tying the size, e.g., width or height, of the slave element to the size of the master element.
In accordance with Further aspects of the invention, the constraint relationship includes aligning the graphical elements along a vertical axis. In another aspect, the constraint relationship includes aligning the graphical elements along a horizontal axis.
In accordance with still Further aspects of the invention, the method includes creating, in response to user input, a distribution frame defining an area on the page bordered by a boundary; and automatically linking the graphical elements to the distribution frame, wherein the graphical elements are encompassed by the boundary. In another aspect, the step of establishing a constraint relationship established between the graphical elements includes the step of arranging the graphical elements in the distribution frame in an order. In a further aspect, the step of arranging the graphical elements in the distribution frame in an order includes the step of locking the order of the graphical elements in the distribution frame so that the order of the graphical elements cannot be rearranged.